Android MTK 放电曲线以及库轮值矫正

您所在的位置:网站首页 mtk 展讯 Android MTK 放电曲线以及库轮值矫正

Android MTK 放电曲线以及库轮值矫正

2023-09-03 13:34| 来源: 网络整理| 查看: 265

Android MTK 放电曲线以及库轮值矫正

提示: 文章内容包括放电曲线和库轮值矫正两部分

文章目录 Android MTK 放电曲线以及库轮值矫正前言一、放电曲线1 、要放电曲线2、提取数据 二、库轮值矫正1、原理2、硬件要求3、测试修改方法4、验证 三、小结

前言

随着智能机的发展,库伦累计法已经成为电量计算的主流。放电曲线和库轮值矫正是智能机的电源部分驱动调整的重要工作。 调整放点曲线牵涉到的细节还是很多的,设置后还要耐心得反复验证耗费时间又长,多弄几次下来真的是多么痛的领悟。

提示:以下是本篇文章正文内容,可供参考

一、放电曲线

系统获取电压值容量比值来获取首次的电量值百分比,放电曲线是主要的参考。

1 、要放电曲线

1、电池供应商提供,50度、25度、10度、0度、-10度放电曲线(ZCV); 2、放电电流和平时使用平均电流接近; 3、至少要有容量变化(从0到最大值)、电流变化(固定)、电压变化(从大到小)、以及内阻变化。四项; 4、精确度精确到小数点后一位。

2、提取数据

1、从电池曲线EXCEL表中提取修改提取我们的数据,填写到代码中,熟练的可能需要收悉EXCEL的一些函数方法,例:IF(MOD(G2,61)=0,H2,“0”),抽取部分行的内容。注意乘以10,取消容量和电压值的小数点。 2、使用电压、容量以及内阻的100组值添加到代码中。注意的是代码中的空格。 3、修改文件路径为: …\kernel-4.9\arch\arm64\boot\dts\mediatek\bat_setting\mtxxxx_battery_table_ext.dtsi

5段温度表格

二、库轮值矫正 1、原理

软件库伦积分法- Voltage Mode– 即由电池压差推出电流作累加 在这里插入图片描述

 优点:可以修正D0引入的误差  缺点:需要一定时间才能修正D0误差, 且推出的I没有HW

2、硬件要求

1、必需有电池温度检测功能电路; 2、必需使用10mohm (即0.01欧)电流检测电阻。

3、测试修改方法

第一步: 先将#define CAR_TUNE_VALUE 改为100, 然后build 一版测试的软件, 再接着进 行后续步骤。(此步骤必须进行,否则后面的修正值就不正确)

第二步:在VBAT正极 与System GND之间给3.8V的电压,给手机供电开机用。也就是说开机的电流不要经过检测0.01欧电阻。 ----注意:给Rfg 加电流的通道,请不要在Rfg两端焊线,加热焊线会影响Rfg电阻,可以直接连接到任意系统地(如:屏蔽盖或测试点上)

第三步:测试用的1A电流加载在电池地(电池连接器的负极)和系统地(System GND)之间。 可以测试链路上在串个电流表,或者直接读取测试精度在1mA内的电源上的电流,注意极性会影响电流的正负值。建议使用程控电源电压设置3.8V,限制输出电流为1000mA。测试前可以先关闭输出。

第四步:按power key 让手机开机,进入操作界面之后,选择拨号界面,输入工程模式密码*#*#3646633#*#* 进入工程模式菜单。然后选择Power->Charge Battery ,读取第五行, FG_Battery_CurrentConsumption的电流值Ifg,没有打开电流应该为0mA。打开1A电流后等待。两次变化以上。

第五步:然后使用1000mA除以Ifg ,修正CAR_TUNE_VALUE=1000/Ifg。例如: Ifg=1064mA,那就 填写为 94 ,对小数的第三位进行四舍五入操作。(该修正值大于或小于100 都是合理的)。

在这里插入图片描述

第五步:修改参数值: 文件路径:…\kernel-4.9\arch\arm64\boot\dts\mediatek\bat_setting\mtxxxx_battery_prop_ext.dtsi

下面直接给代码上中文注释

bat_gm30: battery{ compatible = "mediatek,bat_gm30"; /* Charging termination current.*/ DIFFERENCE_FULLOCV_ITH = ;//充满截止电流阈值 /* If ui_soc shows 1% more than X minites, system will shutdown.*/ SHUTDOWN_1_TIME = ;//0%电量关机等待时间 /* The ui_soc will keep 100% until SOC drop X percents after unplugged.*/ KEEP_100_PERCENT = ;//充电器才出后下降多少降低百分比 R_FG_VALUE = ; /* R_sense resistance.*/ /* Configures whether using embedded battery or not.*/ EMBEDDED_SEL = ;//配置是否使用嵌入式电池 PMIC_SHUTDOWN_CURRENT = ; /* System shutdown current.*///系统关机电流 FG_METER_RESISTANCE = ; /* The resistance of PCB*///PCB电路电阻补偿50=0.1mΩ /* Tune value for current measurement.*/ CAR_TUNE_VALUE = ;//1050mA//电流测量校正值 PMIC_MIN_VOL = ;//系统最小电压值 /* vboot voltage for gauge 0%.*/ POWERON_SYSTEM_IBOOT = ;// vboot 启动电压。 /* power on system iboot*/ SHUTDOWN_GAUGE0_VOLTAGE = ;//系统关机电压 /* shutdown gauge 0% voltage*/ TEMPERATURE_T0 = ; /* Battery temperature T0*///50度对应T0 TEMPERATURE_T1 = ; /* Battery temperature T1*///25度对应T1 TEMPERATURE_T2 = ; /* Battery temperature T2*///10度对应T2 TEMPERATURE_T3 = ; /* Battery temperature T3*///0度对应T3 TEMPERATURE_T4 = ; /* Battery temperature T4*///-10度对应T4 g_FG_PSEUDO100_T0 = ; /* Pseudo 100% percentage at T0.*///T0伪百分比 g_FG_PSEUDO100_T1 = ; /* Pseudo 100% percentage at T1.*///T1伪百分比 g_FG_PSEUDO100_T2 = ; /* Pseudo 100% percentage at T2.*///T2伪百分比 g_FG_PSEUDO100_T3 = ; /* Pseudo 100% percentage at T3.*///T3伪百分比 g_FG_PSEUDO100_T4 = ; /* Pseudo 100% percentage at T4.*///T4伪百分比 /* System shut down voltage.*/ Q_MAX_SYS_VOLTAGE_BAT0 = ;//系统关机电压 /* System shut down voltage.*/ Q_MAX_SYS_VOLTAGE_BAT1 = ;//系统关机电压 /* System shut down voltage.*/ Q_MAX_SYS_VOLTAGE_BAT2 = ;//系统关机电压 /* System shut down voltage.*/ Q_MAX_SYS_VOLTAGE_BAT3 = ;//系统关机电压 #include "mt6765_battery_table_ext.dtsi" }; 4、验证

重新编译后重新测试,看误差是否在3%以内。特别注意检查快要到0%和100%时候的电压是否理理论值比较贴近。

三、小结

充放电曲线的首要因数是电压和容量的曲线表,系统检测不同的温度来选择曲线。而库轮值可以通过电流来修正放电曲线带来的差异。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3